fix(sdk): fail closed on hosted extension dispatch - #549
Conversation
Session-Id: 01a0c4a6-dd65-7ce1-a90e-de1b0b4e86c3 Session-Id: 01a0c4a6-dd65-7ce1-a90e-de1b0b4e86c3
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Session-Id: 01a0c4a6-dd65-7ce1-a90e-de1b0b4e86c3
|
CI follow-up at Literal targeted verification: I also ran the entire SDK suite locally. The original taxonomy failure is gone, but that local invocation is not green: it ran without the workflow's pinned Bun 1.4.0 and under enough concurrency to trip 34 existing 5-second timing/lease tests ( |
Session-Id: 01a0c4a6-dd65-7ce1-a90e-de1b0b4e86c3
|
Security follow-up at exact head
Literal local verification after the workflow-equivalent built-local-Surface override: Canonical CI at this exact head: Fresh human review is now requested. This remains unmerged and unreleased. |
Add extensions/babysitter, a schema-2 extension on software-factory whose
eleven GitHub handlers turn Cloud's normalized delivery descriptor into one
cloud:babysitter-turn queue call:
f.capabilities.cloud.babysitterTurn.queue({ delivery }). It sends no
findings, head, label, session, lineage, or config. Unknown input, receipts
other than queued|duplicate, rejections, and a missing capability fail the
run. The manifest matches the #550 exporter permission shape.
#549's refusal is unchanged: hosted execution still refuses the handler
with plugin_unsupported. compat requires the surface release after 2.0.25.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Session-Id: 7d116c0d-6756-4905-ace7-1235559066ed
Co-authored-by: agentrelaybot <agentrelaybot@agentrelay.dev>
Problem
Schema-2 extensions can install and contribute provider watch rules, but their entries are ordinary authored JavaScript. The runtime does not yet isolate f.run, helpers, MCP, harnesses, or direct Node access to FlowExtensionPermissions. The prior head selected a handler from user-controlled input.event and passed it the base flow context; independent review correctly rejected that design.
Babysitter remains an optional extension of Software Garden, not a second Recommended Flow. This PR now establishes the safe boundary only; it does not claim that Babysitter handlers can execute.
Change
Verification
After the same built-local-Surface override used by the Cloud runtime artifact workflow:
This PR does not publish packages, update a catalog, implement session lineage, or enable merge/write capabilities. Actual Babysitter execution remains blocked until an isolated/native existing-session path proves and enforces its authority boundary.